// add by yanyj 20180716 start
var gulp = require("gulp");
var babel = require("gulp-babel");    // 用于ES6转化ES5
var concat = require("gulp-concat");    // 用于ES6转化ES5
var uglify = require('gulp-uglify'); // 用于压缩 JS
var rename = require('gulp-rename'); // 重命名
var plumber = require('gulp-plumber');

var gulpif = require('gulp-if');
var gulpSequence = require('gulp-sequence');


function swallowError(error) {
    // If you want details of the error in the console
    console.error(error.toString());

    this.emit('end')
}

// ES6转化为ES5
// 在命令行使用 gulp toes5 启动此任务
gulp.task("toes5", function () {
    return gulp.src("js/main/modules/map/source/**/*.js")// ES6 源码存放的路径
        .pipe(plumber())
        .pipe(concat("mapList.js"))
        .pipe(babel({
            presets: [['env', {
                "targets": {
                    "browsers": ["ie >= 8", "chrome >= 62"]
                }
            }], 'stage-2']
        }))
        .pipe(gulp.dest("js/main/modules/map/dist")); //转换成 ES5 存放的路径
});


// 合并通用js
gulp.task("common-mini", function () {
    return gulp.src("js/main/modules/map/common/*.js")// ES6 源码存放的路径
        .pipe(plumber())
        .pipe(concat("map-common.min.js"))
        .pipe(babel({
            presets: [['env', {
                "targets": {
                    "browsers": ["ie >= 8", "chrome >= 62"]
                }
            }], 'stage-2']
        }))
        .pipe(uglify())
        .pipe(gulp.dest("js/main/modules/map/dist")); //转换成 ES5 存放的路径
});

// 压缩 js 文件
// 在命令行使用 gulp script 启动此任务
gulp.task('min', function () {
    // 1. 找到文件
    gulp.src(['js/main/modules/map/dist/*.js', '!js/main/modules/map/dist/*.min.js'])
        .pipe(plumber())
    // 2. 压缩文件
        .pipe(gulpif('!*.min.js', uglify()))
        .pipe(rename({suffix: '.min'}))

        // 3. 另存压缩后的文件
        .pipe(gulp.dest('js/main/modules/map/dist'))
});

gulp.task('run', function (callback) {
    gulpSequence('toes5', 'min')(callback)
});

// 自动监控任务
// 在命令行使用 gulp auto 启动此任务

gulp.task('auto', function () {
    // 监听文件修改，当文件被修改则执行 script 任务
    gulp.watch(['js/main/modules/map/source/**/*.js'], ['run']);
    gulp.watch(['js/main/modules/map/common/*.js'], ['common-mini']);

    // gulp.watch(['!dist/*.min.js'], 'dist/*.js', ['min']);

});
// add by yanyj 2018016 end
